A hash chain is the successive application of a cryptographic hash function to a piece of data. In computer security, a hash chain is a method used to produce many one-time keys from a single key or password. For non-repudiation, a hash function can be applied successively to additional pieces of data in order to record the chronology of data's existence.
For example,
gives a hash chain of length 4, often denoted
An eavesdropper seeing communicated to the server will be unable to re-transmit the same hash chain to the server for authentication since the server now expects . Due to the One-way function of cryptographically secure hash functions, it is infeasible for the eavesdropper to reverse the hash function and obtain an earlier piece of the hash chain. In this example, the user could authenticate 1000 times before the hash chain were exhausted. Each time the hash value is different, and thus cannot be duplicated by an attacker.
The above diagram shows a hash tree consisting of eight leaf nodes and the hash chain for the third leaf node. In addition to the hash values themselves the order of concatenation (right or left 1,0) or "order bits" are necessary to complete the hash chain.
(also known as '''function chains''') are used in hash-based cryptography. The chain is parameterized by the ''w'' (number of bits in a "digit" ''d'') and ''security parameter'' ''n'' (number of bits in the hash value, typically double the security strength, 256 or 512). The chain consists of values that are results of repeated application of a [[one-way "chain" function|One-way function]] ''F'' to a secret key ''sk'': . The chain function is typically based on a standard cryptographic hash, but needs to be parameterized ("randomized"), so it involves few invocations of the underlying hash. In the Winternitz signature scheme a chain is used to encode one digit of the ''m''-bit message, so the Winternitz signature uses approximately bits, its calculation takes about applications of the function F. Note that some signature standards (like Extended Merkle signature scheme, XMSS) define ''w'' as the number of possible values in a digit, so in XMSS corresponds to in standards (like Leighton-Micali Signature, LMS) that define ''w'' in the same way as above - as a number of bits in the digit.[https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-208.pdf NIST SP 800-208, Recommendation for Stateful Hash-Based Signature Schemes], p. 5
|
|